// $ANTLR 3.2 Sep 23, 2009 12:02:23 LaSQLEasy.g 2012-06-16 22:19:03

    package cn.edu.thu.laud.lasql.parser;
    import java.util.Map;
   


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class LaSQLEasyParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "K_SELECT", "K_COUNT", "K_FROM", "IDENT", "STRING_LITERAL", "INTEGER", "K_USING", "K_CONSISTENCY", "K_LEVEL", "K_WHERE", "K_LIMIT", "K_FIRST", "K_REVERSED", "RANGEOP", "K_AND", "K_IN", "K_INSERT", "K_INTO", "K_VALUES", "K_TIMESTAMP", "K_TTL", "K_BEGIN", "K_BATCH", "K_APPLY", "K_UPDATE", "K_SET", "K_DELETE", "K_KEY", "UUID", "FLOAT", "K_FUNCTION", "K_REMOTE", "S", "E", "L", "C", "T", "F", "R", "O", "M", "W", "H", "A", "N", "D", "K", "Y", "I", "U", "P", "K_WITH", "G", "Q", "K_USE", "V", "B", "K_TRUNCATE", "K_CREATE", "K_KEYSPACE", "K_COLUMNFAMILY", "X", "K_INDEX", "K_ON", "K_DROP", "K_PRIMARY", "K_ALTER", "K_ADD", "K_TYPE", "J", "Z", "DIGIT", "LETTER", "HEX", "COMPIDENT", "WS", "COMMENT", "MULTILINE_COMMENT", "'('", "')'", "'.'", "','", "'\\*'", "';'", "'='", "'+'", "'-'", "'<'", "'<='", "'>='", "'>'"
    };
    public static final int LETTER=76;
    public static final int K_FUNCTION=34;
    public static final int K_CREATE=62;
    public static final int EOF=-1;
    public static final int K_PRIMARY=69;
    public static final int T__93=93;
    public static final int T__94=94;
    public static final int T__91=91;
    public static final int K_VALUES=22;
    public static final int T__92=92;
    public static final int K_USE=58;
    public static final int STRING_LITERAL=8;
    public static final int T__90=90;
    public static final int K_ON=67;
    public static final int K_USING=10;
    public static final int K_ADD=71;
    public static final int K_KEY=31;
    public static final int COMMENT=80;
    public static final int K_TRUNCATE=61;
    public static final int D=49;
    public static final int E=37;
    public static final int F=41;
    public static final int G=56;
    public static final int K_COUNT=5;
    public static final int K_KEYSPACE=63;
    public static final int K_TYPE=72;
    public static final int A=47;
    public static final int T__82=82;
    public static final int B=60;
    public static final int T__83=83;
    public static final int C=39;
    public static final int L=38;
    public static final int M=44;
    public static final int N=48;
    public static final int O=43;
    public static final int H=46;
    public static final int I=52;
    public static final int K_UPDATE=28;
    public static final int J=73;
    public static final int K=50;
    public static final int U=53;
    public static final int T=40;
    public static final int W=45;
    public static final int V=59;
    public static final int Q=57;
    public static final int P=54;
    public static final int S=36;
    public static final int R=42;
    public static final int T__85=85;
    public static final int T__84=84;
    public static final int T__87=87;
    public static final int K_TTL=24;
    public static final int T__86=86;
    public static final int T__89=89;
    public static final int Y=51;
    public static final int T__88=88;
    public static final int X=65;
    public static final int Z=74;
    public static final int K_INDEX=66;
    public static final int K_REVERSED=16;
    public static final int K_INSERT=20;
    public static final int WS=79;
    public static final int K_APPLY=27;
    public static final int K_TIMESTAMP=23;
    public static final int K_AND=18;
    public static final int K_LEVEL=12;
    public static final int K_BATCH=26;
    public static final int UUID=32;
    public static final int K_DELETE=30;
    public static final int FLOAT=33;
    public static final int K_SELECT=4;
    public static final int K_LIMIT=14;
    public static final int K_ALTER=70;
    public static final int K_SET=29;
    public static final int K_WHERE=13;
    public static final int MULTILINE_COMMENT=81;
    public static final int K_INTO=21;
    public static final int HEX=77;
    public static final int IDENT=7;
    public static final int DIGIT=75;
    public static final int K_FIRST=15;
    public static final int K_BEGIN=25;
    public static final int INTEGER=9;
    public static final int RANGEOP=17;
    public static final int K_CONSISTENCY=11;
    public static final int K_WITH=55;
    public static final int COMPIDENT=78;
    public static final int K_REMOTE=35;
    public static final int K_IN=19;
    public static final int K_FROM=6;
    public static final int K_COLUMNFAMILY=64;
    public static final int K_DROP=68;

    // delegates
    // delegators


        public LaSQLEasyParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public LaSQLEasyParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return LaSQLEasyParser.tokenNames; }
    public String getGrammarFileName() { return "LaSQLEasy.g"; }


        private List<String> recognitionErrors = new ArrayList<String>();
        
        public void displayRecognitionError(String[] tokenNames, RecognitionException e)
        {
            String hdr = getErrorHeader(e);
            String msg = getErrorMessage(e, tokenNames);
            recognitionErrors.add(hdr + " " + msg);
        }
        
        public List<String> getRecognitionErrors()
        {
            return recognitionErrors;
        }
        
        public void throwLastRecognitionError() throws Exception
        {
            if (recognitionErrors.size() > 0)
                throw new Exception(recognitionErrors.get((recognitionErrors.size()-1)));
        }

      



    // $ANTLR start "query"
    // LaSQLEasy.g:100:1: query[List<LaSQLFunctionParser> maps] : ( selectStatement[maps] | insertStatement[maps] | updateStatement[maps] | batchStatement[maps] | deleteStatement[maps] );
    public final void query(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:101:5: ( selectStatement[maps] | insertStatement[maps] | updateStatement[maps] | batchStatement[maps] | deleteStatement[maps] )
            int alt1=5;
            switch ( input.LA(1) ) {
            case K_SELECT:
                {
                alt1=1;
                }
                break;
            case K_INSERT:
                {
                alt1=2;
                }
                break;
            case K_UPDATE:
                {
                alt1=3;
                }
                break;
            case K_BEGIN:
                {
                alt1=4;
                }
                break;
            case K_DELETE:
                {
                alt1=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // LaSQLEasy.g:101:7: selectStatement[maps]
                    {
                    pushFollow(FOLLOW_selectStatement_in_query66);
                    selectStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:102:7: insertStatement[maps]
                    {
                    pushFollow(FOLLOW_insertStatement_in_query76);
                    insertStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // LaSQLEasy.g:103:7: updateStatement[maps]
                    {
                    pushFollow(FOLLOW_updateStatement_in_query86);
                    updateStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 4 :
                    // LaSQLEasy.g:104:7: batchStatement[maps]
                    {
                    pushFollow(FOLLOW_batchStatement_in_query96);
                    batchStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 5 :
                    // LaSQLEasy.g:105:10: deleteStatement[maps]
                    {
                    pushFollow(FOLLOW_deleteStatement_in_query109);
                    deleteStatement(maps);

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "query"


    // $ANTLR start "selectStatement"
    // LaSQLEasy.g:109:1: selectStatement[List<LaSQLFunctionParser> maps] : K_SELECT (s1= selectExpression | K_COUNT '(' s2= selectExpression ')' ) K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( K_USING K_CONSISTENCY K_LEVEL )? ( K_WHERE whereClause[maps] )? ( K_LIMIT INTEGER )? endStmnt ;
    public final void selectStatement(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:122:5: ( K_SELECT (s1= selectExpression | K_COUNT '(' s2= selectExpression ')' ) K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( K_USING K_CONSISTENCY K_LEVEL )? ( K_WHERE whereClause[maps] )? ( K_LIMIT INTEGER )? endStmnt )
            // LaSQLEasy.g:123:7: K_SELECT (s1= selectExpression | K_COUNT '(' s2= selectExpression ')' ) K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( K_USING K_CONSISTENCY K_LEVEL )? ( K_WHERE whereClause[maps] )? ( K_LIMIT INTEGER )? endStmnt
            {
            match(input,K_SELECT,FOLLOW_K_SELECT_in_selectStatement138); 
            // LaSQLEasy.g:124:11: (s1= selectExpression | K_COUNT '(' s2= selectExpression ')' )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( ((LA2_0>=IDENT && LA2_0<=INTEGER)||(LA2_0>=K_FIRST && LA2_0<=K_REVERSED)||(LA2_0>=K_KEY && LA2_0<=FLOAT)||LA2_0==86) ) {
                alt2=1;
            }
            else if ( (LA2_0==K_COUNT) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // LaSQLEasy.g:124:13: s1= selectExpression
                    {
                    pushFollow(FOLLOW_selectExpression_in_selectStatement154);
                    selectExpression();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:125:13: K_COUNT '(' s2= selectExpression ')'
                    {
                    match(input,K_COUNT,FOLLOW_K_COUNT_in_selectStatement170); 
                    match(input,82,FOLLOW_82_in_selectStatement172); 
                    pushFollow(FOLLOW_selectExpression_in_selectStatement176);
                    selectExpression();

                    state._fsp--;

                    match(input,83,FOLLOW_83_in_selectStatement178); 

                    }
                    break;

            }

            match(input,K_FROM,FOLLOW_K_FROM_in_selectStatement203); 
            // LaSQLEasy.g:127:18: ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( ((LA3_0>=IDENT && LA3_0<=INTEGER)) ) {
                int LA3_1 = input.LA(2);

                if ( (LA3_1==84) ) {
                    alt3=1;
                }
            }
            switch (alt3) {
                case 1 :
                    // LaSQLEasy.g:127:19: ( IDENT | STRING_LITERAL | INTEGER ) '.'
                    {
                    if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }

                    match(input,84,FOLLOW_84_in_selectStatement218); 

                    }
                    break;

            }

            if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            // LaSQLEasy.g:128:11: ( K_USING K_CONSISTENCY K_LEVEL )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==K_USING) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // LaSQLEasy.g:128:13: K_USING K_CONSISTENCY K_LEVEL
                    {
                    match(input,K_USING,FOLLOW_K_USING_in_selectStatement248); 
                    match(input,K_CONSISTENCY,FOLLOW_K_CONSISTENCY_in_selectStatement250); 
                    match(input,K_LEVEL,FOLLOW_K_LEVEL_in_selectStatement252); 

                    }
                    break;

            }

            // LaSQLEasy.g:129:11: ( K_WHERE whereClause[maps] )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==K_WHERE) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // LaSQLEasy.g:129:13: K_WHERE whereClause[maps]
                    {
                    match(input,K_WHERE,FOLLOW_K_WHERE_in_selectStatement269); 
                    pushFollow(FOLLOW_whereClause_in_selectStatement271);
                    whereClause(maps);

                    state._fsp--;


                    }
                    break;

            }

            // LaSQLEasy.g:130:11: ( K_LIMIT INTEGER )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==K_LIMIT) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // LaSQLEasy.g:130:13: K_LIMIT INTEGER
                    {
                    match(input,K_LIMIT,FOLLOW_K_LIMIT_in_selectStatement289); 
                    match(input,INTEGER,FOLLOW_INTEGER_in_selectStatement291); 

                    }
                    break;

            }

            pushFollow(FOLLOW_endStmnt_in_selectStatement306);
            endStmnt();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "selectStatement"


    // $ANTLR start "selectExpression"
    // LaSQLEasy.g:137:1: selectExpression : ( K_FIRST INTEGER )? ( K_REVERSED )? ( term ( ',' term )* | term RANGEOP term | '\\*' ) ;
    public final void selectExpression() throws RecognitionException {
        try {
            // LaSQLEasy.g:138:5: ( ( K_FIRST INTEGER )? ( K_REVERSED )? ( term ( ',' term )* | term RANGEOP term | '\\*' ) )
            // LaSQLEasy.g:139:7: ( K_FIRST INTEGER )? ( K_REVERSED )? ( term ( ',' term )* | term RANGEOP term | '\\*' )
            {
            // LaSQLEasy.g:139:7: ( K_FIRST INTEGER )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==K_FIRST) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // LaSQLEasy.g:139:9: K_FIRST INTEGER
                    {
                    match(input,K_FIRST,FOLLOW_K_FIRST_in_selectExpression339); 
                    match(input,INTEGER,FOLLOW_INTEGER_in_selectExpression341); 

                    }
                    break;

            }

            // LaSQLEasy.g:140:7: ( K_REVERSED )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==K_REVERSED) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // LaSQLEasy.g:140:9: K_REVERSED
                    {
                    match(input,K_REVERSED,FOLLOW_K_REVERSED_in_selectExpression354); 

                    }
                    break;

            }

            // LaSQLEasy.g:141:7: ( term ( ',' term )* | term RANGEOP term | '\\*' )
            int alt10=3;
            int LA10_0 = input.LA(1);

            if ( ((LA10_0>=IDENT && LA10_0<=INTEGER)||(LA10_0>=K_KEY && LA10_0<=FLOAT)) ) {
                int LA10_1 = input.LA(2);

                if ( (LA10_1==RANGEOP) ) {
                    alt10=2;
                }
                else if ( (LA10_1==K_FROM||LA10_1==83||LA10_1==85) ) {
                    alt10=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 10, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA10_0==86) ) {
                alt10=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // LaSQLEasy.g:141:9: term ( ',' term )*
                    {
                    pushFollow(FOLLOW_term_in_selectExpression368);
                    term();

                    state._fsp--;

                    // LaSQLEasy.g:142:13: ( ',' term )*
                    loop9:
                    do {
                        int alt9=2;
                        int LA9_0 = input.LA(1);

                        if ( (LA9_0==85) ) {
                            alt9=1;
                        }


                        switch (alt9) {
                    	case 1 :
                    	    // LaSQLEasy.g:142:14: ',' term
                    	    {
                    	    match(input,85,FOLLOW_85_in_selectExpression383); 
                    	    pushFollow(FOLLOW_term_in_selectExpression385);
                    	    term();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop9;
                        }
                    } while (true);


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:143:9: term RANGEOP term
                    {
                    pushFollow(FOLLOW_term_in_selectExpression398);
                    term();

                    state._fsp--;

                    match(input,RANGEOP,FOLLOW_RANGEOP_in_selectExpression400); 
                    pushFollow(FOLLOW_term_in_selectExpression402);
                    term();

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // LaSQLEasy.g:144:9: '\\*'
                    {
                    match(input,86,FOLLOW_86_in_selectExpression412); 

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "selectExpression"


    // $ANTLR start "whereClause"
    // LaSQLEasy.g:149:1: whereClause[List<LaSQLFunctionParser> maps] : ( laudRelation[maps] ( K_AND laudRelation[maps] )* | term K_IN '(' term ( ',' term )* ')' );
    public final void whereClause(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:151:5: ( laudRelation[maps] ( K_AND laudRelation[maps] )* | term K_IN '(' term ( ',' term )* ')' )
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( ((LA13_0>=IDENT && LA13_0<=INTEGER)||(LA13_0>=K_KEY && LA13_0<=FLOAT)) ) {
                int LA13_1 = input.LA(2);

                if ( (LA13_1==K_IN) ) {
                    alt13=2;
                }
                else if ( (LA13_1==88||(LA13_1>=91 && LA13_1<=94)) ) {
                    alt13=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 13, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;
            }
            switch (alt13) {
                case 1 :
                    // LaSQLEasy.g:151:7: laudRelation[maps] ( K_AND laudRelation[maps] )*
                    {
                    pushFollow(FOLLOW_laudRelation_in_whereClause445);
                    laudRelation(maps);

                    state._fsp--;

                    // LaSQLEasy.g:152:11: ( K_AND laudRelation[maps] )*
                    loop11:
                    do {
                        int alt11=2;
                        int LA11_0 = input.LA(1);

                        if ( (LA11_0==K_AND) ) {
                            alt11=1;
                        }


                        switch (alt11) {
                    	case 1 :
                    	    // LaSQLEasy.g:152:12: K_AND laudRelation[maps]
                    	    {
                    	    match(input,K_AND,FOLLOW_K_AND_in_whereClause460); 
                    	    pushFollow(FOLLOW_laudRelation_in_whereClause462);
                    	    laudRelation(maps);

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop11;
                        }
                    } while (true);


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:153:9: term K_IN '(' term ( ',' term )* ')'
                    {
                    pushFollow(FOLLOW_term_in_whereClause476);
                    term();

                    state._fsp--;

                    match(input,K_IN,FOLLOW_K_IN_in_whereClause489); 
                    match(input,82,FOLLOW_82_in_whereClause491); 
                    pushFollow(FOLLOW_term_in_whereClause493);
                    term();

                    state._fsp--;

                    // LaSQLEasy.g:155:19: ( ',' term )*
                    loop12:
                    do {
                        int alt12=2;
                        int LA12_0 = input.LA(1);

                        if ( (LA12_0==85) ) {
                            alt12=1;
                        }


                        switch (alt12) {
                    	case 1 :
                    	    // LaSQLEasy.g:155:20: ',' term
                    	    {
                    	    match(input,85,FOLLOW_85_in_whereClause514); 
                    	    pushFollow(FOLLOW_term_in_whereClause516);
                    	    term();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop12;
                        }
                    } while (true);

                    match(input,83,FOLLOW_83_in_whereClause521); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "whereClause"


    // $ANTLR start "insertStatement"
    // LaSQLEasy.g:159:1: insertStatement[List<LaSQLFunctionParser> maps] : K_INSERT K_INTO ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) '(' term ( ',' term )+ ')' K_VALUES '(' term ( ',' laudTerm[maps] )+ ')' ( usingClause )? ;
    public final void insertStatement(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:173:5: ( K_INSERT K_INTO ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) '(' term ( ',' term )+ ')' K_VALUES '(' term ( ',' laudTerm[maps] )+ ')' ( usingClause )? )
            // LaSQLEasy.g:174:7: K_INSERT K_INTO ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) '(' term ( ',' term )+ ')' K_VALUES '(' term ( ',' laudTerm[maps] )+ ')' ( usingClause )?
            {
            match(input,K_INSERT,FOLLOW_K_INSERT_in_insertStatement555); 
            match(input,K_INTO,FOLLOW_K_INTO_in_insertStatement557); 
            // LaSQLEasy.g:174:23: ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( ((LA14_0>=IDENT && LA14_0<=INTEGER)) ) {
                int LA14_1 = input.LA(2);

                if ( (LA14_1==84) ) {
                    alt14=1;
                }
            }
            switch (alt14) {
                case 1 :
                    // LaSQLEasy.g:174:24: ( IDENT | STRING_LITERAL | INTEGER ) '.'
                    {
                    if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }

                    match(input,84,FOLLOW_84_in_insertStatement572); 

                    }
                    break;

            }

            if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            match(input,82,FOLLOW_82_in_insertStatement600); 
            pushFollow(FOLLOW_term_in_insertStatement602);
            term();

            state._fsp--;

            // LaSQLEasy.g:175:20: ( ',' term )+
            int cnt15=0;
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==85) ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // LaSQLEasy.g:175:22: ',' term
            	    {
            	    match(input,85,FOLLOW_85_in_insertStatement606); 
            	    pushFollow(FOLLOW_term_in_insertStatement608);
            	    term();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt15 >= 1 ) break loop15;
                        EarlyExitException eee =
                            new EarlyExitException(15, input);
                        throw eee;
                }
                cnt15++;
            } while (true);

            match(input,83,FOLLOW_83_in_insertStatement614); 
            match(input,K_VALUES,FOLLOW_K_VALUES_in_insertStatement624); 
            match(input,82,FOLLOW_82_in_insertStatement636); 
            pushFollow(FOLLOW_term_in_insertStatement638);
            term();

            state._fsp--;

            // LaSQLEasy.g:177:20: ( ',' laudTerm[maps] )+
            int cnt16=0;
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==85) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // LaSQLEasy.g:177:22: ',' laudTerm[maps]
            	    {
            	    match(input,85,FOLLOW_85_in_insertStatement642); 
            	    pushFollow(FOLLOW_laudTerm_in_insertStatement644);
            	    laudTerm(maps);

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt16 >= 1 ) break loop16;
                        EarlyExitException eee =
                            new EarlyExitException(16, input);
                        throw eee;
                }
                cnt16++;
            } while (true);

            match(input,83,FOLLOW_83_in_insertStatement650); 
            // LaSQLEasy.g:178:9: ( usingClause )?
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==K_USING) ) {
                alt17=1;
            }
            switch (alt17) {
                case 1 :
                    // LaSQLEasy.g:178:11: usingClause
                    {
                    pushFollow(FOLLOW_usingClause_in_insertStatement662);
                    usingClause();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "insertStatement"


    // $ANTLR start "usingClause"
    // LaSQLEasy.g:182:1: usingClause : K_USING usingClauseObjective ( ( K_AND )? usingClauseObjective )* ;
    public final void usingClause() throws RecognitionException {
        try {
            // LaSQLEasy.g:183:5: ( K_USING usingClauseObjective ( ( K_AND )? usingClauseObjective )* )
            // LaSQLEasy.g:183:7: K_USING usingClauseObjective ( ( K_AND )? usingClauseObjective )*
            {
            match(input,K_USING,FOLLOW_K_USING_in_usingClause689); 
            pushFollow(FOLLOW_usingClauseObjective_in_usingClause691);
            usingClauseObjective();

            state._fsp--;

            // LaSQLEasy.g:183:36: ( ( K_AND )? usingClauseObjective )*
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==K_CONSISTENCY||LA19_0==K_AND||(LA19_0>=K_TIMESTAMP && LA19_0<=K_TTL)) ) {
                    alt19=1;
                }


                switch (alt19) {
            	case 1 :
            	    // LaSQLEasy.g:183:38: ( K_AND )? usingClauseObjective
            	    {
            	    // LaSQLEasy.g:183:38: ( K_AND )?
            	    int alt18=2;
            	    int LA18_0 = input.LA(1);

            	    if ( (LA18_0==K_AND) ) {
            	        alt18=1;
            	    }
            	    switch (alt18) {
            	        case 1 :
            	            // LaSQLEasy.g:183:38: K_AND
            	            {
            	            match(input,K_AND,FOLLOW_K_AND_in_usingClause695); 

            	            }
            	            break;

            	    }

            	    pushFollow(FOLLOW_usingClauseObjective_in_usingClause698);
            	    usingClauseObjective();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop19;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "usingClause"


    // $ANTLR start "usingClauseDelete"
    // LaSQLEasy.g:186:1: usingClauseDelete : K_USING usingClauseDeleteObjective ( ( K_AND )? usingClauseDeleteObjective )* ;
    public final void usingClauseDelete() throws RecognitionException {
        try {
            // LaSQLEasy.g:187:5: ( K_USING usingClauseDeleteObjective ( ( K_AND )? usingClauseDeleteObjective )* )
            // LaSQLEasy.g:187:7: K_USING usingClauseDeleteObjective ( ( K_AND )? usingClauseDeleteObjective )*
            {
            match(input,K_USING,FOLLOW_K_USING_in_usingClauseDelete718); 
            pushFollow(FOLLOW_usingClauseDeleteObjective_in_usingClauseDelete720);
            usingClauseDeleteObjective();

            state._fsp--;

            // LaSQLEasy.g:187:42: ( ( K_AND )? usingClauseDeleteObjective )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==K_CONSISTENCY||LA21_0==K_AND||LA21_0==K_TIMESTAMP) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // LaSQLEasy.g:187:44: ( K_AND )? usingClauseDeleteObjective
            	    {
            	    // LaSQLEasy.g:187:44: ( K_AND )?
            	    int alt20=2;
            	    int LA20_0 = input.LA(1);

            	    if ( (LA20_0==K_AND) ) {
            	        alt20=1;
            	    }
            	    switch (alt20) {
            	        case 1 :
            	            // LaSQLEasy.g:187:44: K_AND
            	            {
            	            match(input,K_AND,FOLLOW_K_AND_in_usingClauseDelete724); 

            	            }
            	            break;

            	    }

            	    pushFollow(FOLLOW_usingClauseDeleteObjective_in_usingClauseDelete727);
            	    usingClauseDeleteObjective();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "usingClauseDelete"


    // $ANTLR start "usingClauseDeleteObjective"
    // LaSQLEasy.g:190:1: usingClauseDeleteObjective : ( K_CONSISTENCY K_LEVEL | K_TIMESTAMP ts= INTEGER );
    public final void usingClauseDeleteObjective() throws RecognitionException {
        Token ts=null;

        try {
            // LaSQLEasy.g:191:5: ( K_CONSISTENCY K_LEVEL | K_TIMESTAMP ts= INTEGER )
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==K_CONSISTENCY) ) {
                alt22=1;
            }
            else if ( (LA22_0==K_TIMESTAMP) ) {
                alt22=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }
            switch (alt22) {
                case 1 :
                    // LaSQLEasy.g:191:7: K_CONSISTENCY K_LEVEL
                    {
                    match(input,K_CONSISTENCY,FOLLOW_K_CONSISTENCY_in_usingClauseDeleteObjective747); 
                    match(input,K_LEVEL,FOLLOW_K_LEVEL_in_usingClauseDeleteObjective749); 

                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:192:7: K_TIMESTAMP ts= INTEGER
                    {
                    match(input,K_TIMESTAMP,FOLLOW_K_TIMESTAMP_in_usingClauseDeleteObjective758); 
                    ts=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_usingClauseDeleteObjective762); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "usingClauseDeleteObjective"


    // $ANTLR start "usingClauseObjective"
    // LaSQLEasy.g:195:1: usingClauseObjective : ( usingClauseDeleteObjective | K_TTL t= INTEGER );
    public final void usingClauseObjective() throws RecognitionException {
        Token t=null;

        try {
            // LaSQLEasy.g:196:5: ( usingClauseDeleteObjective | K_TTL t= INTEGER )
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==K_CONSISTENCY||LA23_0==K_TIMESTAMP) ) {
                alt23=1;
            }
            else if ( (LA23_0==K_TTL) ) {
                alt23=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }
            switch (alt23) {
                case 1 :
                    // LaSQLEasy.g:196:7: usingClauseDeleteObjective
                    {
                    pushFollow(FOLLOW_usingClauseDeleteObjective_in_usingClauseObjective780);
                    usingClauseDeleteObjective();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:197:7: K_TTL t= INTEGER
                    {
                    match(input,K_TTL,FOLLOW_K_TTL_in_usingClauseObjective788); 
                    t=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_usingClauseObjective792); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "usingClauseObjective"


    // $ANTLR start "batchStatement"
    // LaSQLEasy.g:200:1: batchStatement[List<LaSQLFunctionParser> maps] : K_BEGIN K_BATCH ( usingClause )? batchStatementObjective[maps] ( ';' )? ( batchStatementObjective[maps] ( ';' )? )* K_APPLY K_BATCH endStmnt ;
    public final void batchStatement(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:225:5: ( K_BEGIN K_BATCH ( usingClause )? batchStatementObjective[maps] ( ';' )? ( batchStatementObjective[maps] ( ';' )? )* K_APPLY K_BATCH endStmnt )
            // LaSQLEasy.g:226:7: K_BEGIN K_BATCH ( usingClause )? batchStatementObjective[maps] ( ';' )? ( batchStatementObjective[maps] ( ';' )? )* K_APPLY K_BATCH endStmnt
            {
            match(input,K_BEGIN,FOLLOW_K_BEGIN_in_batchStatement822); 
            match(input,K_BATCH,FOLLOW_K_BATCH_in_batchStatement824); 
            // LaSQLEasy.g:226:23: ( usingClause )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==K_USING) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // LaSQLEasy.g:226:25: usingClause
                    {
                    pushFollow(FOLLOW_usingClause_in_batchStatement828);
                    usingClause();

                    state._fsp--;


                    }
                    break;

            }

            pushFollow(FOLLOW_batchStatementObjective_in_batchStatement843);
            batchStatementObjective(maps);

            state._fsp--;

            // LaSQLEasy.g:227:41: ( ';' )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==87) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // LaSQLEasy.g:227:41: ';'
                    {
                    match(input,87,FOLLOW_87_in_batchStatement846); 

                    }
                    break;

            }

            // LaSQLEasy.g:227:47: ( batchStatementObjective[maps] ( ';' )? )*
            loop27:
            do {
                int alt27=2;
                int LA27_0 = input.LA(1);

                if ( (LA27_0==K_INSERT||LA27_0==K_UPDATE||LA27_0==K_DELETE) ) {
                    alt27=1;
                }


                switch (alt27) {
            	case 1 :
            	    // LaSQLEasy.g:227:48: batchStatementObjective[maps] ( ';' )?
            	    {
            	    pushFollow(FOLLOW_batchStatementObjective_in_batchStatement851);
            	    batchStatementObjective(maps);

            	    state._fsp--;

            	    // LaSQLEasy.g:227:78: ( ';' )?
            	    int alt26=2;
            	    int LA26_0 = input.LA(1);

            	    if ( (LA26_0==87) ) {
            	        alt26=1;
            	    }
            	    switch (alt26) {
            	        case 1 :
            	            // LaSQLEasy.g:227:78: ';'
            	            {
            	            match(input,87,FOLLOW_87_in_batchStatement854); 

            	            }
            	            break;

            	    }


            	    }
            	    break;

            	default :
            	    break loop27;
                }
            } while (true);

            match(input,K_APPLY,FOLLOW_K_APPLY_in_batchStatement867); 
            match(input,K_BATCH,FOLLOW_K_BATCH_in_batchStatement869); 
            pushFollow(FOLLOW_endStmnt_in_batchStatement871);
            endStmnt();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "batchStatement"


    // $ANTLR start "batchStatementObjective"
    // LaSQLEasy.g:232:1: batchStatementObjective[List<LaSQLFunctionParser> maps] : (i= insertStatement[maps] | u= updateStatement[maps] | d= deleteStatement[maps] );
    public final void batchStatementObjective(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:233:5: (i= insertStatement[maps] | u= updateStatement[maps] | d= deleteStatement[maps] )
            int alt28=3;
            switch ( input.LA(1) ) {
            case K_INSERT:
                {
                alt28=1;
                }
                break;
            case K_UPDATE:
                {
                alt28=2;
                }
                break;
            case K_DELETE:
                {
                alt28=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 28, 0, input);

                throw nvae;
            }

            switch (alt28) {
                case 1 :
                    // LaSQLEasy.g:233:7: i= insertStatement[maps]
                    {
                    pushFollow(FOLLOW_insertStatement_in_batchStatementObjective898);
                    insertStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:234:7: u= updateStatement[maps]
                    {
                    pushFollow(FOLLOW_updateStatement_in_batchStatementObjective911);
                    updateStatement(maps);

                    state._fsp--;


                    }
                    break;
                case 3 :
                    // LaSQLEasy.g:235:7: d= deleteStatement[maps]
                    {
                    pushFollow(FOLLOW_deleteStatement_in_batchStatementObjective923);
                    deleteStatement(maps);

                    state._fsp--;


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "batchStatementObjective"


    // $ANTLR start "updateStatement"
    // LaSQLEasy.g:238:1: updateStatement[List<LaSQLFunctionParser> maps] : K_UPDATE ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClause )? K_SET laudTermPairWithOperation[maps] ( ',' laudTermPairWithOperation[maps] )* K_WHERE ( term ( '=' term | K_IN '(' termList ')' ) ) ;
    public final void updateStatement(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:252:5: ( K_UPDATE ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClause )? K_SET laudTermPairWithOperation[maps] ( ',' laudTermPairWithOperation[maps] )* K_WHERE ( term ( '=' term | K_IN '(' termList ')' ) ) )
            // LaSQLEasy.g:253:7: K_UPDATE ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClause )? K_SET laudTermPairWithOperation[maps] ( ',' laudTermPairWithOperation[maps] )* K_WHERE ( term ( '=' term | K_IN '(' termList ')' ) )
            {
            match(input,K_UPDATE,FOLLOW_K_UPDATE_in_updateStatement951); 
            // LaSQLEasy.g:253:16: ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( ((LA29_0>=IDENT && LA29_0<=INTEGER)) ) {
                int LA29_1 = input.LA(2);

                if ( (LA29_1==84) ) {
                    alt29=1;
                }
            }
            switch (alt29) {
                case 1 :
                    // LaSQLEasy.g:253:17: ( IDENT | STRING_LITERAL | INTEGER ) '.'
                    {
                    if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }

                    match(input,84,FOLLOW_84_in_updateStatement966); 

                    }
                    break;

            }

            if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            // LaSQLEasy.g:254:11: ( usingClause )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==K_USING) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // LaSQLEasy.g:254:13: usingClause
                    {
                    pushFollow(FOLLOW_usingClause_in_updateStatement996);
                    usingClause();

                    state._fsp--;


                    }
                    break;

            }

            match(input,K_SET,FOLLOW_K_SET_in_updateStatement1011); 
            pushFollow(FOLLOW_laudTermPairWithOperation_in_updateStatement1013);
            laudTermPairWithOperation(maps);

            state._fsp--;

            // LaSQLEasy.g:255:49: ( ',' laudTermPairWithOperation[maps] )*
            loop31:
            do {
                int alt31=2;
                int LA31_0 = input.LA(1);

                if ( (LA31_0==85) ) {
                    alt31=1;
                }


                switch (alt31) {
            	case 1 :
            	    // LaSQLEasy.g:255:50: ',' laudTermPairWithOperation[maps]
            	    {
            	    match(input,85,FOLLOW_85_in_updateStatement1017); 
            	    pushFollow(FOLLOW_laudTermPairWithOperation_in_updateStatement1019);
            	    laudTermPairWithOperation(maps);

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop31;
                }
            } while (true);

            match(input,K_WHERE,FOLLOW_K_WHERE_in_updateStatement1034); 
            // LaSQLEasy.g:256:19: ( term ( '=' term | K_IN '(' termList ')' ) )
            // LaSQLEasy.g:256:21: term ( '=' term | K_IN '(' termList ')' )
            {
            pushFollow(FOLLOW_term_in_updateStatement1038);
            term();

            state._fsp--;

            // LaSQLEasy.g:256:26: ( '=' term | K_IN '(' termList ')' )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==88) ) {
                alt32=1;
            }
            else if ( (LA32_0==K_IN) ) {
                alt32=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }
            switch (alt32) {
                case 1 :
                    // LaSQLEasy.g:256:27: '=' term
                    {
                    match(input,88,FOLLOW_88_in_updateStatement1041); 
                    pushFollow(FOLLOW_term_in_updateStatement1043);
                    term();

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:258:37: K_IN '(' termList ')'
                    {
                    match(input,K_IN,FOLLOW_K_IN_in_updateStatement1120); 
                    match(input,82,FOLLOW_82_in_updateStatement1122); 
                    pushFollow(FOLLOW_termList_in_updateStatement1124);
                    termList();

                    state._fsp--;

                    match(input,83,FOLLOW_83_in_updateStatement1127); 

                    }
                    break;

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "updateStatement"


    // $ANTLR start "deleteStatement"
    // LaSQLEasy.g:262:1: deleteStatement[List<LaSQLFunctionParser> maps] : K_DELETE ( termList )? K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClauseDelete )? ( K_WHERE term ( '=' term | K_IN '(' termList ')' ) )? ;
    public final void deleteStatement(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:273:5: ( K_DELETE ( termList )? K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClauseDelete )? ( K_WHERE term ( '=' term | K_IN '(' termList ')' ) )? )
            // LaSQLEasy.g:274:7: K_DELETE ( termList )? K_FROM ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )? ( IDENT | STRING_LITERAL | INTEGER ) ( usingClauseDelete )? ( K_WHERE term ( '=' term | K_IN '(' termList ')' ) )?
            {
            match(input,K_DELETE,FOLLOW_K_DELETE_in_deleteStatement1163); 
            // LaSQLEasy.g:275:11: ( termList )?
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( ((LA33_0>=IDENT && LA33_0<=INTEGER)||(LA33_0>=K_KEY && LA33_0<=FLOAT)) ) {
                alt33=1;
            }
            switch (alt33) {
                case 1 :
                    // LaSQLEasy.g:275:13: termList
                    {
                    pushFollow(FOLLOW_termList_in_deleteStatement1177);
                    termList();

                    state._fsp--;


                    }
                    break;

            }

            match(input,K_FROM,FOLLOW_K_FROM_in_deleteStatement1191); 
            // LaSQLEasy.g:276:18: ( ( IDENT | STRING_LITERAL | INTEGER ) '.' )?
            int alt34=2;
            int LA34_0 = input.LA(1);

            if ( ((LA34_0>=IDENT && LA34_0<=INTEGER)) ) {
                int LA34_1 = input.LA(2);

                if ( (LA34_1==84) ) {
                    alt34=1;
                }
            }
            switch (alt34) {
                case 1 :
                    // LaSQLEasy.g:276:19: ( IDENT | STRING_LITERAL | INTEGER ) '.'
                    {
                    if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }

                    match(input,84,FOLLOW_84_in_deleteStatement1206); 

                    }
                    break;

            }

            if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            // LaSQLEasy.g:277:11: ( usingClauseDelete )?
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==K_USING) ) {
                alt35=1;
            }
            switch (alt35) {
                case 1 :
                    // LaSQLEasy.g:277:13: usingClauseDelete
                    {
                    pushFollow(FOLLOW_usingClauseDelete_in_deleteStatement1236);
                    usingClauseDelete();

                    state._fsp--;


                    }
                    break;

            }

            // LaSQLEasy.g:278:11: ( K_WHERE term ( '=' term | K_IN '(' termList ')' ) )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==K_WHERE) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // LaSQLEasy.g:278:13: K_WHERE term ( '=' term | K_IN '(' termList ')' )
                    {
                    match(input,K_WHERE,FOLLOW_K_WHERE_in_deleteStatement1253); 
                    pushFollow(FOLLOW_term_in_deleteStatement1255);
                    term();

                    state._fsp--;

                    // LaSQLEasy.g:278:26: ( '=' term | K_IN '(' termList ')' )
                    int alt36=2;
                    int LA36_0 = input.LA(1);

                    if ( (LA36_0==88) ) {
                        alt36=1;
                    }
                    else if ( (LA36_0==K_IN) ) {
                        alt36=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 36, 0, input);

                        throw nvae;
                    }
                    switch (alt36) {
                        case 1 :
                            // LaSQLEasy.g:278:27: '=' term
                            {
                            match(input,88,FOLLOW_88_in_deleteStatement1258); 
                            pushFollow(FOLLOW_term_in_deleteStatement1260);
                            term();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // LaSQLEasy.g:279:38: K_IN '(' termList ')'
                            {
                            match(input,K_IN,FOLLOW_K_IN_in_deleteStatement1299); 
                            match(input,82,FOLLOW_82_in_deleteStatement1301); 
                            pushFollow(FOLLOW_termList_in_deleteStatement1303);
                            termList();

                            state._fsp--;

                            match(input,83,FOLLOW_83_in_deleteStatement1306); 

                            }
                            break;

                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "deleteStatement"


    // $ANTLR start "term"
    // LaSQLEasy.g:283:1: term : ( K_KEY | STRING_LITERAL | INTEGER | UUID | IDENT | FLOAT ) ;
    public final void term() throws RecognitionException {
        try {
            // LaSQLEasy.g:284:5: ( ( K_KEY | STRING_LITERAL | INTEGER | UUID | IDENT | FLOAT ) )
            // LaSQLEasy.g:284:7: ( K_KEY | STRING_LITERAL | INTEGER | UUID | IDENT | FLOAT )
            {
            if ( (input.LA(1)>=IDENT && input.LA(1)<=INTEGER)||(input.LA(1)>=K_KEY && input.LA(1)<=FLOAT) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "term"


    // $ANTLR start "laudTerm"
    // LaSQLEasy.g:286:1: laudTerm[List<LaSQLFunctionParser> maps] : ( ( function ) | t= K_KEY | t= STRING_LITERAL | t= INTEGER | t= UUID | t= IDENT | t= FLOAT | ( remoteFunction ) ) ;
    public final void laudTerm(List<LaSQLFunctionParser> maps) throws RecognitionException {
        Token t=null;
        LaSQLLocalFunctionParser function1 = null;


        try {
            // LaSQLEasy.g:287:1: ( ( ( function ) | t= K_KEY | t= STRING_LITERAL | t= INTEGER | t= UUID | t= IDENT | t= FLOAT | ( remoteFunction ) ) )
            // LaSQLEasy.g:288:2: ( ( function ) | t= K_KEY | t= STRING_LITERAL | t= INTEGER | t= UUID | t= IDENT | t= FLOAT | ( remoteFunction ) )
            {
            // LaSQLEasy.g:288:2: ( ( function ) | t= K_KEY | t= STRING_LITERAL | t= INTEGER | t= UUID | t= IDENT | t= FLOAT | ( remoteFunction ) )
            int alt38=8;
            alt38 = dfa38.predict(input);
            switch (alt38) {
                case 1 :
                    // LaSQLEasy.g:289:2: ( function )
                    {
                    // LaSQLEasy.g:289:2: ( function )
                    // LaSQLEasy.g:289:4: function
                    {
                    pushFollow(FOLLOW_function_in_laudTerm1385);
                    function1=function();

                    state._fsp--;


                     //System.out.println("one function");
                     maps.add(function1);

                    }


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:293:5: t= K_KEY
                    {
                    t=(Token)match(input,K_KEY,FOLLOW_K_KEY_in_laudTerm1398); 

                    }
                    break;
                case 3 :
                    // LaSQLEasy.g:295:5: t= STRING_LITERAL
                    {
                    t=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_laudTerm1413); 

                    }
                    break;
                case 4 :
                    // LaSQLEasy.g:297:4: t= INTEGER
                    {
                    t=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_laudTerm1427); 

                    }
                    break;
                case 5 :
                    // LaSQLEasy.g:299:4: t= UUID
                    {
                    t=(Token)match(input,UUID,FOLLOW_UUID_in_laudTerm1440); 

                    }
                    break;
                case 6 :
                    // LaSQLEasy.g:301:4: t= IDENT
                    {
                    t=(Token)match(input,IDENT,FOLLOW_IDENT_in_laudTerm1452); 

                    }
                    break;
                case 7 :
                    // LaSQLEasy.g:303:4: t= FLOAT
                    {
                    t=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_laudTerm1464); 

                    }
                    break;
                case 8 :
                    // LaSQLEasy.g:306:3: ( remoteFunction )
                    {
                    // LaSQLEasy.g:306:3: ( remoteFunction )
                    // LaSQLEasy.g:309:2: remoteFunction
                    {
                    pushFollow(FOLLOW_remoteFunction_in_laudTerm1482);
                    remoteFunction();

                    state._fsp--;


                     System.out.println("one function remote");

                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "laudTerm"


    // $ANTLR start "termList"
    // LaSQLEasy.g:317:1: termList : term ( ',' term )* ;
    public final void termList() throws RecognitionException {
        try {
            // LaSQLEasy.g:318:5: ( term ( ',' term )* )
            // LaSQLEasy.g:319:7: term ( ',' term )*
            {
            pushFollow(FOLLOW_term_in_termList1519);
            term();

            state._fsp--;

            // LaSQLEasy.g:319:13: ( ',' term )*
            loop39:
            do {
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==85) ) {
                    alt39=1;
                }


                switch (alt39) {
            	case 1 :
            	    // LaSQLEasy.g:319:14: ',' term
            	    {
            	    match(input,85,FOLLOW_85_in_termList1523); 
            	    pushFollow(FOLLOW_term_in_termList1525);
            	    term();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop39;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "termList"


    // $ANTLR start "intTerm"
    // LaSQLEasy.g:322:1: intTerm : INTEGER ;
    public final void intTerm() throws RecognitionException {
        try {
            // LaSQLEasy.g:323:5: ( INTEGER )
            // LaSQLEasy.g:323:7: INTEGER
            {
            match(input,INTEGER,FOLLOW_INTEGER_in_intTerm1545); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "intTerm"


    // $ANTLR start "laudTermPairWithOperation"
    // LaSQLEasy.g:326:1: laudTermPairWithOperation[List<LaSQLFunctionParser> maps] : term '=' ( laudTerm[maps] | term ( '+' term | ( '-' )? intTerm ) ) ;
    public final void laudTermPairWithOperation(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:327:5: ( term '=' ( laudTerm[maps] | term ( '+' term | ( '-' )? intTerm ) ) )
            // LaSQLEasy.g:327:7: term '=' ( laudTerm[maps] | term ( '+' term | ( '-' )? intTerm ) )
            {
            pushFollow(FOLLOW_term_in_laudTermPairWithOperation1564);
            term();

            state._fsp--;

            match(input,88,FOLLOW_88_in_laudTermPairWithOperation1566); 
            // LaSQLEasy.g:327:16: ( laudTerm[maps] | term ( '+' term | ( '-' )? intTerm ) )
            int alt42=2;
            switch ( input.LA(1) ) {
            case K_FUNCTION:
                {
                alt42=1;
                }
                break;
            case K_KEY:
                {
                int LA42_2 = input.LA(2);

                if ( (LA42_2==K_WHERE||LA42_2==85) ) {
                    alt42=1;
                }
                else if ( (LA42_2==INTEGER||(LA42_2>=89 && LA42_2<=90)) ) {
                    alt42=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 2, input);

                    throw nvae;
                }
                }
                break;
            case STRING_LITERAL:
                {
                int LA42_3 = input.LA(2);

                if ( (LA42_3==K_WHERE||LA42_3==85) ) {
                    alt42=1;
                }
                else if ( (LA42_3==INTEGER||(LA42_3>=89 && LA42_3<=90)) ) {
                    alt42=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 3, input);

                    throw nvae;
                }
                }
                break;
            case INTEGER:
                {
                int LA42_4 = input.LA(2);

                if ( (LA42_4==INTEGER||(LA42_4>=89 && LA42_4<=90)) ) {
                    alt42=2;
                }
                else if ( (LA42_4==K_WHERE||LA42_4==85) ) {
                    alt42=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 4, input);

                    throw nvae;
                }
                }
                break;
            case UUID:
                {
                int LA42_5 = input.LA(2);

                if ( (LA42_5==INTEGER||(LA42_5>=89 && LA42_5<=90)) ) {
                    alt42=2;
                }
                else if ( (LA42_5==K_WHERE||LA42_5==85) ) {
                    alt42=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 5, input);

                    throw nvae;
                }
                }
                break;
            case IDENT:
                {
                int LA42_6 = input.LA(2);

                if ( (LA42_6==INTEGER||(LA42_6>=89 && LA42_6<=90)) ) {
                    alt42=2;
                }
                else if ( (LA42_6==K_WHERE||LA42_6==85) ) {
                    alt42=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 6, input);

                    throw nvae;
                }
                }
                break;
            case FLOAT:
                {
                int LA42_7 = input.LA(2);

                if ( (LA42_7==INTEGER||(LA42_7>=89 && LA42_7<=90)) ) {
                    alt42=2;
                }
                else if ( (LA42_7==K_WHERE||LA42_7==85) ) {
                    alt42=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 7, input);

                    throw nvae;
                }
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;
            }

            switch (alt42) {
                case 1 :
                    // LaSQLEasy.g:327:17: laudTerm[maps]
                    {
                    pushFollow(FOLLOW_laudTerm_in_laudTermPairWithOperation1569);
                    laudTerm(maps);

                    state._fsp--;


                    }
                    break;
                case 2 :
                    // LaSQLEasy.g:328:20: term ( '+' term | ( '-' )? intTerm )
                    {
                    pushFollow(FOLLOW_term_in_laudTermPairWithOperation1591);
                    term();

                    state._fsp--;

                    // LaSQLEasy.g:328:25: ( '+' term | ( '-' )? intTerm )
                    int alt41=2;
                    int LA41_0 = input.LA(1);

                    if ( (LA41_0==89) ) {
                        alt41=1;
                    }
                    else if ( (LA41_0==INTEGER||LA41_0==90) ) {
                        alt41=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 41, 0, input);

                        throw nvae;
                    }
                    switch (alt41) {
                        case 1 :
                            // LaSQLEasy.g:328:27: '+' term
                            {
                            match(input,89,FOLLOW_89_in_laudTermPairWithOperation1595); 
                            pushFollow(FOLLOW_term_in_laudTermPairWithOperation1598);
                            term();

                            state._fsp--;


                            }
                            break;
                        case 2 :
                            // LaSQLEasy.g:329:31: ( '-' )? intTerm
                            {
                            // LaSQLEasy.g:329:31: ( '-' )?
                            int alt40=2;
                            int LA40_0 = input.LA(1);

                            if ( (LA40_0==90) ) {
                                alt40=1;
                            }
                            switch (alt40) {
                                case 1 :
                                    // LaSQLEasy.g:329:31: '-'
                                    {
                                    match(input,90,FOLLOW_90_in_laudTermPairWithOperation1631); 

                                    }
                                    break;

                            }

                            pushFollow(FOLLOW_intTerm_in_laudTermPairWithOperation1634);
                            intTerm();

                            state._fsp--;


                            }
                            break;

                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "laudTermPairWithOperation"


    // $ANTLR start "laudRelation"
    // LaSQLEasy.g:334:1: laudRelation[List<LaSQLFunctionParser> maps] : term ( '=' | '<' | '<=' | '>=' | '>' ) laudTerm[maps] ;
    public final void laudRelation(List<LaSQLFunctionParser> maps) throws RecognitionException {
        try {
            // LaSQLEasy.g:335:5: ( term ( '=' | '<' | '<=' | '>=' | '>' ) laudTerm[maps] )
            // LaSQLEasy.g:335:7: term ( '=' | '<' | '<=' | '>=' | '>' ) laudTerm[maps]
            {
            pushFollow(FOLLOW_term_in_laudRelation1691);
            term();

            state._fsp--;

            if ( input.LA(1)==88||(input.LA(1)>=91 && input.LA(1)<=94) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            pushFollow(FOLLOW_laudTerm_in_laudRelation1713);
            laudTerm(maps);

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "laudRelation"


    // $ANTLR start "endStmnt"
    // LaSQLEasy.g:338:1: endStmnt : ( ';' )? EOF ;
    public final void endStmnt() throws RecognitionException {
        try {
            // LaSQLEasy.g:339:5: ( ( ';' )? EOF )
            // LaSQLEasy.g:339:7: ( ';' )? EOF
            {
            // LaSQLEasy.g:339:7: ( ';' )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==87) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // LaSQLEasy.g:339:7: ';'
                    {
                    match(input,87,FOLLOW_87_in_endStmnt1731); 

                    }
                    break;

            }

            match(input,EOF,FOLLOW_EOF_in_endStmnt1735); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "endStmnt"


    // $ANTLR start "function"
    // LaSQLEasy.g:342:1: function returns [LaSQLLocalFunctionParser laudFunction ] : K_FUNCTION '(' class_name= STRING_LITERAL ( ',' param= STRING_LITERAL )* ')' ;
    public final LaSQLLocalFunctionParser function() throws RecognitionException {
        LaSQLLocalFunctionParser laudFunction = null;

        Token class_name=null;
        Token param=null;

        try {
            // LaSQLEasy.g:343:1: ( K_FUNCTION '(' class_name= STRING_LITERAL ( ',' param= STRING_LITERAL )* ')' )
            // LaSQLEasy.g:344:2: K_FUNCTION '(' class_name= STRING_LITERAL ( ',' param= STRING_LITERAL )* ')'
            {
            match(input,K_FUNCTION,FOLLOW_K_FUNCTION_in_function1753); 
            match(input,82,FOLLOW_82_in_function1754); 
            class_name=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_function1758); 
            laudFunction =new LaSQLLocalFunctionParser((class_name!=null?class_name.getText():null));
            // LaSQLEasy.g:345:2: ( ',' param= STRING_LITERAL )*
            loop44:
            do {
                int alt44=2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0==85) ) {
                    alt44=1;
                }


                switch (alt44) {
            	case 1 :
            	    // LaSQLEasy.g:345:3: ',' param= STRING_LITERAL
            	    {
            	    match(input,85,FOLLOW_85_in_function1764); 
            	    param=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_function1768); 
            	    laudFunction.add((param!=null?param.getText():null));

            	    }
            	    break;

            	default :
            	    break loop44;
                }
            } while (true);

            match(input,83,FOLLOW_83_in_function1774); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return laudFunction;
    }
    // $ANTLR end "function"


    // $ANTLR start "remoteFunction"
    // LaSQLEasy.g:347:1: remoteFunction returns [LaSQLFunctionParser laudFunction ] : K_FUNCTION '(' STRING_LITERAL ( ',' STRING_LITERAL )* ')' K_REMOTE ;
    public final LaSQLFunctionParser remoteFunction() throws RecognitionException {
        LaSQLFunctionParser laudFunction = null;

        try {
            // LaSQLEasy.g:348:1: ( K_FUNCTION '(' STRING_LITERAL ( ',' STRING_LITERAL )* ')' K_REMOTE )
            // LaSQLEasy.g:349:2: K_FUNCTION '(' STRING_LITERAL ( ',' STRING_LITERAL )* ')' K_REMOTE
            {
            match(input,K_FUNCTION,FOLLOW_K_FUNCTION_in_remoteFunction1789); 
            match(input,82,FOLLOW_82_in_remoteFunction1790); 
            match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_remoteFunction1792); 
            // LaSQLEasy.g:350:2: ( ',' STRING_LITERAL )*
            loop45:
            do {
                int alt45=2;
                int LA45_0 = input.LA(1);

                if ( (LA45_0==85) ) {
                    alt45=1;
                }


                switch (alt45) {
            	case 1 :
            	    // LaSQLEasy.g:350:3: ',' STRING_LITERAL
            	    {
            	    match(input,85,FOLLOW_85_in_remoteFunction1797); 
            	    match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_remoteFunction1799); 

            	    }
            	    break;

            	default :
            	    break loop45;
                }
            } while (true);

            match(input,83,FOLLOW_83_in_remoteFunction1804); 
            match(input,K_REMOTE,FOLLOW_K_REMOTE_in_remoteFunction1806); 
            return null;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return laudFunction;
    }
    // $ANTLR end "remoteFunction"

    // Delegated rules


    protected DFA38 dfa38 = new DFA38(this);
    static final String DFA38_eotS =
        "\17\uffff";
    static final String DFA38_eofS =
        "\13\uffff\1\16\3\uffff";
    static final String DFA38_minS =
        "\1\7\1\122\6\uffff\1\10\1\123\1\10\1\15\1\123\2\uffff";
    static final String DFA38_maxS =
        "\1\42\1\122\6\uffff\1\10\1\125\1\10\1\127\1\125\2\uffff";
    static final String DFA38_acceptS =
        "\2\uffff\1\2\1\3\1\4\1\5\1\6\1\7\5\uffff\1\10\1\1";
    static final String DFA38_specialS =
        "\17\uffff}>";
    static final String[] DFA38_transitionS = {
            "\1\6\1\3\1\4\25\uffff\1\2\1\5\1\7\1\1",
            "\1\10",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\11",
            "\1\13\1\uffff\1\12",
            "\1\14",
            "\2\16\3\uffff\1\16\20\uffff\1\15\57\uffff\1\16\1\uffff\1\16"+
            "\1\uffff\1\16",
            "\1\13\1\uffff\1\12",
            "",
            ""
    };

    static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
    static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
    static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
    static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
    static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
    static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
    static final short[][] DFA38_transition;

    static {
        int numStates = DFA38_transitionS.length;
        DFA38_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
        }
    }

    class DFA38 extends DFA {

        public DFA38(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 38;
            this.eot = DFA38_eot;
            this.eof = DFA38_eof;
            this.min = DFA38_min;
            this.max = DFA38_max;
            this.accept = DFA38_accept;
            this.special = DFA38_special;
            this.transition = DFA38_transition;
        }
        public String getDescription() {
            return "288:2: ( ( function ) | t= K_KEY | t= STRING_LITERAL | t= INTEGER | t= UUID | t= IDENT | t= FLOAT | ( remoteFunction ) )";
        }
    }
 

    public static final BitSet FOLLOW_selectStatement_in_query66 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_insertStatement_in_query76 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_updateStatement_in_query86 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_batchStatement_in_query96 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_deleteStatement_in_query109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_SELECT_in_selectStatement138 = new BitSet(new long[]{0x00000003800183A0L,0x0000000000400000L});
    public static final BitSet FOLLOW_selectExpression_in_selectStatement154 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_K_COUNT_in_selectStatement170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_selectStatement172 = new BitSet(new long[]{0x0000000380018380L,0x0000000000400000L});
    public static final BitSet FOLLOW_selectExpression_in_selectStatement176 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_83_in_selectStatement178 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_K_FROM_in_selectStatement203 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_selectStatement206 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_84_in_selectStatement218 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_selectStatement222 = new BitSet(new long[]{0x0000000000006400L,0x0000000000800000L});
    public static final BitSet FOLLOW_K_USING_in_selectStatement248 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_K_CONSISTENCY_in_selectStatement250 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_K_LEVEL_in_selectStatement252 = new BitSet(new long[]{0x0000000000006400L,0x0000000000800000L});
    public static final BitSet FOLLOW_K_WHERE_in_selectStatement269 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_whereClause_in_selectStatement271 = new BitSet(new long[]{0x0000000000006400L,0x0000000000800000L});
    public static final BitSet FOLLOW_K_LIMIT_in_selectStatement289 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_INTEGER_in_selectStatement291 = new BitSet(new long[]{0x0000000000006400L,0x0000000000800000L});
    public static final BitSet FOLLOW_endStmnt_in_selectStatement306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_FIRST_in_selectExpression339 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_INTEGER_in_selectExpression341 = new BitSet(new long[]{0x0000000380010380L,0x0000000000400000L});
    public static final BitSet FOLLOW_K_REVERSED_in_selectExpression354 = new BitSet(new long[]{0x0000000380000380L,0x0000000000400000L});
    public static final BitSet FOLLOW_term_in_selectExpression368 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
    public static final BitSet FOLLOW_85_in_selectExpression383 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_selectExpression385 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
    public static final BitSet FOLLOW_term_in_selectExpression398 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_RANGEOP_in_selectExpression400 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_selectExpression402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_86_in_selectExpression412 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_laudRelation_in_whereClause445 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_K_AND_in_whereClause460 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_laudRelation_in_whereClause462 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_term_in_whereClause476 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_K_IN_in_whereClause489 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_whereClause491 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_whereClause493 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_85_in_whereClause514 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_whereClause516 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_83_in_whereClause521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_INSERT_in_insertStatement555 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_K_INTO_in_insertStatement557 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_insertStatement560 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_84_in_insertStatement572 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_insertStatement576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_insertStatement600 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_insertStatement602 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_85_in_insertStatement606 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_insertStatement608 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_83_in_insertStatement614 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_K_VALUES_in_insertStatement624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_insertStatement636 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_insertStatement638 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_85_in_insertStatement642 = new BitSet(new long[]{0x0000000780000380L});
    public static final BitSet FOLLOW_laudTerm_in_insertStatement644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_83_in_insertStatement650 = new BitSet(new long[]{0x0000000000000402L});
    public static final BitSet FOLLOW_usingClause_in_insertStatement662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_USING_in_usingClause689 = new BitSet(new long[]{0x0000000001800800L});
    public static final BitSet FOLLOW_usingClauseObjective_in_usingClause691 = new BitSet(new long[]{0x0000000001840802L});
    public static final BitSet FOLLOW_K_AND_in_usingClause695 = new BitSet(new long[]{0x0000000001800800L});
    public static final BitSet FOLLOW_usingClauseObjective_in_usingClause698 = new BitSet(new long[]{0x0000000001840802L});
    public static final BitSet FOLLOW_K_USING_in_usingClauseDelete718 = new BitSet(new long[]{0x0000000000800800L});
    public static final BitSet FOLLOW_usingClauseDeleteObjective_in_usingClauseDelete720 = new BitSet(new long[]{0x0000000000840802L});
    public static final BitSet FOLLOW_K_AND_in_usingClauseDelete724 = new BitSet(new long[]{0x0000000000800800L});
    public static final BitSet FOLLOW_usingClauseDeleteObjective_in_usingClauseDelete727 = new BitSet(new long[]{0x0000000000840802L});
    public static final BitSet FOLLOW_K_CONSISTENCY_in_usingClauseDeleteObjective747 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_K_LEVEL_in_usingClauseDeleteObjective749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_TIMESTAMP_in_usingClauseDeleteObjective758 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_INTEGER_in_usingClauseDeleteObjective762 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_usingClauseDeleteObjective_in_usingClauseObjective780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_TTL_in_usingClauseObjective788 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_INTEGER_in_usingClauseObjective792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_BEGIN_in_batchStatement822 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_K_BATCH_in_batchStatement824 = new BitSet(new long[]{0x0000000050100400L});
    public static final BitSet FOLLOW_usingClause_in_batchStatement828 = new BitSet(new long[]{0x0000000050100400L});
    public static final BitSet FOLLOW_batchStatementObjective_in_batchStatement843 = new BitSet(new long[]{0x0000000058100400L,0x0000000000800000L});
    public static final BitSet FOLLOW_87_in_batchStatement846 = new BitSet(new long[]{0x0000000058100400L});
    public static final BitSet FOLLOW_batchStatementObjective_in_batchStatement851 = new BitSet(new long[]{0x0000000058100400L,0x0000000000800000L});
    public static final BitSet FOLLOW_87_in_batchStatement854 = new BitSet(new long[]{0x0000000058100400L});
    public static final BitSet FOLLOW_K_APPLY_in_batchStatement867 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_K_BATCH_in_batchStatement869 = new BitSet(new long[]{0x0000000000006400L,0x0000000000800000L});
    public static final BitSet FOLLOW_endStmnt_in_batchStatement871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_insertStatement_in_batchStatementObjective898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_updateStatement_in_batchStatementObjective911 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_deleteStatement_in_batchStatementObjective923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_UPDATE_in_updateStatement951 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_updateStatement954 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_84_in_updateStatement966 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_updateStatement970 = new BitSet(new long[]{0x0000000020000400L});
    public static final BitSet FOLLOW_usingClause_in_updateStatement996 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_K_SET_in_updateStatement1011 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_laudTermPairWithOperation_in_updateStatement1013 = new BitSet(new long[]{0x0000000000002000L,0x0000000000200000L});
    public static final BitSet FOLLOW_85_in_updateStatement1017 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_laudTermPairWithOperation_in_updateStatement1019 = new BitSet(new long[]{0x0000000000002000L,0x0000000000200000L});
    public static final BitSet FOLLOW_K_WHERE_in_updateStatement1034 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_updateStatement1038 = new BitSet(new long[]{0x0000000000080000L,0x0000000001000000L});
    public static final BitSet FOLLOW_88_in_updateStatement1041 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_updateStatement1043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_IN_in_updateStatement1120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_updateStatement1122 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_termList_in_updateStatement1124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_83_in_updateStatement1127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_DELETE_in_deleteStatement1163 = new BitSet(new long[]{0x00000003800003C0L});
    public static final BitSet FOLLOW_termList_in_deleteStatement1177 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_K_FROM_in_deleteStatement1191 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_deleteStatement1194 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_84_in_deleteStatement1206 = new BitSet(new long[]{0x0000000000000380L});
    public static final BitSet FOLLOW_set_in_deleteStatement1210 = new BitSet(new long[]{0x0000000000002402L});
    public static final BitSet FOLLOW_usingClauseDelete_in_deleteStatement1236 = new BitSet(new long[]{0x0000000000002002L});
    public static final BitSet FOLLOW_K_WHERE_in_deleteStatement1253 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_deleteStatement1255 = new BitSet(new long[]{0x0000000000080000L,0x0000000001000000L});
    public static final BitSet FOLLOW_88_in_deleteStatement1258 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_deleteStatement1260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_IN_in_deleteStatement1299 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_deleteStatement1301 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_termList_in_deleteStatement1303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_83_in_deleteStatement1306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_term1345 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_function_in_laudTerm1385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_KEY_in_laudTerm1398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRING_LITERAL_in_laudTerm1413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INTEGER_in_laudTerm1427 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_UUID_in_laudTerm1440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_laudTerm1452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FLOAT_in_laudTerm1464 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_remoteFunction_in_laudTerm1482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_term_in_termList1519 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
    public static final BitSet FOLLOW_85_in_termList1523 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_termList1525 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
    public static final BitSet FOLLOW_INTEGER_in_intTerm1545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_term_in_laudTermPairWithOperation1564 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
    public static final BitSet FOLLOW_88_in_laudTermPairWithOperation1566 = new BitSet(new long[]{0x0000000780000380L});
    public static final BitSet FOLLOW_laudTerm_in_laudTermPairWithOperation1569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_term_in_laudTermPairWithOperation1591 = new BitSet(new long[]{0x0000000000000200L,0x0000000006000000L});
    public static final BitSet FOLLOW_89_in_laudTermPairWithOperation1595 = new BitSet(new long[]{0x0000000380000380L});
    public static final BitSet FOLLOW_term_in_laudTermPairWithOperation1598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_90_in_laudTermPairWithOperation1631 = new BitSet(new long[]{0x0000000000000200L,0x0000000006000000L});
    public static final BitSet FOLLOW_intTerm_in_laudTermPairWithOperation1634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_term_in_laudRelation1691 = new BitSet(new long[]{0x0000000000000000L,0x0000000079000000L});
    public static final BitSet FOLLOW_set_in_laudRelation1693 = new BitSet(new long[]{0x0000000780000380L});
    public static final BitSet FOLLOW_laudTerm_in_laudRelation1713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_87_in_endStmnt1731 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_endStmnt1735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_FUNCTION_in_function1753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_function1754 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_STRING_LITERAL_in_function1758 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_85_in_function1764 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_STRING_LITERAL_in_function1768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_83_in_function1774 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_K_FUNCTION_in_remoteFunction1789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
    public static final BitSet FOLLOW_82_in_remoteFunction1790 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_STRING_LITERAL_in_remoteFunction1792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_85_in_remoteFunction1797 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_STRING_LITERAL_in_remoteFunction1799 = new BitSet(new long[]{0x0000000000000000L,0x0000000000280000L});
    public static final BitSet FOLLOW_83_in_remoteFunction1804 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_K_REMOTE_in_remoteFunction1806 = new BitSet(new long[]{0x0000000000000002L});

}